Handle recursion from motion event handlers
authorOwen W. Taylor <otaylor@fishsoup.net>
Mon, 11 Nov 2013 23:04:34 +0000 (18:04 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 12 Nov 2013 04:17:14 +0000 (23:17 -0500)
commitf50a3af1b7a24836c784797484cae14052cbfcdd
tree2bb0800523535b82ebc340506440a81c1d7c1465
parent0db8aeaad9f81d7d3b582cc9f0b096705bf0591a
Handle recursion from motion event handlers

If a motion event handler (or other handler running from the flush-events
phase of the frame clock) recursed the main loop then flushing wouldn't
complete until after the recursed main loop returned, and various aspects
of the state would get out of sync.

To fix this, change flushing of the event queue to simply mark events as
ready to flush, and let normal event delivery handle the rest.

https://bugzilla.gnome.org/show_bug.cgi?id=705176
gdk/broadway/gdkeventsource.c
gdk/gdkdisplay.c
gdk/gdkdisplayprivate.h
gdk/gdkevents.c
gdk/gdkinternals.h
gdk/gdkwindow.c
gdk/quartz/gdkeventloop-quartz.c
gdk/wayland/gdkeventsource.c
gdk/win32/gdkevents-win32.c
gdk/x11/gdkeventsource.c